package com.reactim.message.protection;

import lombok.AllArgsConstructor;
import lombok.Data;

/**
 * 连接检查结果
 */
@Data
@AllArgsConstructor
public class ConnectionCheckResult {
    
    /**
     * 是否允许连接
     */
    private final boolean allowed;
    
    /**
     * 拒绝原因（当不允许时）
     */
    private final String reason;
    
    /**
     * 创建允许的结果
     */
    public static ConnectionCheckResult allowed() {
        return new ConnectionCheckResult(true, null);
    }
    
    /**
     * 创建拒绝的结果
     */
    public static ConnectionCheckResult rejected(String reason) {
        return new ConnectionCheckResult(false, reason);
    }
    
    /**
     * 是否被拒绝
     */
    public boolean isRejected() {
        return !allowed;
    }
}